package server.models.partie;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Observable;

import server.models.Equipe;
import server.models.terrain.Terrain;

public class Partie extends Observable implements IPartie, Serializable {
	
	private ArrayList<Equipe> listeEquipes;
	private Terrain terrain;
	
	public Partie() {
		this.listeEquipes = new ArrayList<Equipe>();
		this.setTerrain(new Terrain());  
	}

	public ArrayList<Equipe> getListeEquipes() {
		return this.listeEquipes;
	}

	public Terrain getTerrain() {
		return terrain;
	}

	public void setTerrain(Terrain terrain) {
		this.terrain = terrain;
		this.setChanged();
		this.notifyObservers();
	}

	//Méthodes publiques
	/**
	 * Ajouter une équipe à la partie
	 * @param equipe L'équipe ajoutée
	 */
	public void ajouterEquipe(Equipe equipe)
	{
		this.listeEquipes.add(equipe);
		this.setChanged();
		this.notifyObservers();
	}
	
	/**
	 * Obtenir une équipe de part son nom
	 * @param nomEquipe
	 * @return
	 */
	public Equipe obtenirEquipe(String nomEquipe) {
		for (Equipe equipe : this.listeEquipes) {
			if (equipe.getNom().equals(nomEquipe)) {
				return equipe;
			}
		}
		return null;
	}		
}
